
package m2acsis.algebre ;

/**
 * Interface de manipulation d'un anneau.
 * 
 * @author Yann Viémont
 * 
 */
public interface ElemAnneau extends ElemGroupe
  {

    /**
     * Calcule le produit entre l'élément exécutant la méthode et
     * l'élément de groupe passé en paramètre.
     * 
     * @param e deuxième opérande du produit.
     * @return le résultat du produit.
     */
    ElemAnneau produit (ElemAnneau e) ;


    /**
     * Rend l'élément unité de l'anneau.
     * 
     * @return l'élément de groupe qui est l'élément unité (ou null s'il
     *         n'y en a pas).
     */
    ElemAnneau unite () ;


    /**
     * Rend l'inverse dans l'anneau de l'élément qui exécute la méthode.
     * 
     * @return l'élément opposé s'il existe ou null.
     */
    ElemAnneau inverse () ;
  }
